home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1995 June / MacFormat 25.iso / Shareware City / Developers / OutOfPhase1.1 Source / OutOfPhase Folder / EditCommandParameters.c < prev    next >
Text File  |  1995-01-06  |  46KB  |  1,117 lines

  1. /* EditCommandParameters.c */
  2. /*****************************************************************************/
  3. /*                                                                           */
  4. /*    Out Of Phase:  Digital Music Synthesis on General Purpose Computers    */
  5. /*    Copyright (C) 1994  Thomas R. Lawrence                                 */
  6. /*                                                                           */
  7. /*    This program is free software; you can redistribute it and/or modify   */
  8. /*    it under the terms of the GNU General Public License as published by   */
  9. /*    the Free Software Foundation; either version 2 of the License, or      */
  10. /*    (at your option) any later version.                                    */
  11. /*                                                                           */
  12. /*    This program is distributed in the hope that it will be useful,        */
  13. /*    but WITHOUT ANY WARRANTY; without even the implied warranty of         */
  14. /*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          */
  15. /*    GNU General Public License for more details.                           */
  16. /*                                                                           */
  17. /*    You should have received a copy of the GNU General Public License      */
  18. /*    along with this program; if not, write to the Free Software            */
  19. /*    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.              */
  20. /*                                                                           */
  21. /*    Thomas R. Lawrence can be reached at tomlaw@world.std.com.             */
  22. /*                                                                           */
  23. /*****************************************************************************/
  24.  
  25. #include "MiscInfo.h"
  26. #include "Audit.h"
  27. #include "Debug.h"
  28. #include "Definitions.h"
  29.  
  30. #include "EditCommandParameters.h"
  31. #include "NoteObject.h"
  32. #include "Memory.h"
  33. #include "NoteAttributeDialog.h"
  34. #include "BinaryCodedDecimal.h"
  35. #include "TrackObject.h"
  36. #include "DataMunging.h"
  37. #include "CmdDlgOneParam.h"
  38. #include "CmdDlgTwoParams.h"
  39. #include "CmdDlgOneBinaryChoice.h"
  40. #include "CmdDlgOneString.h"
  41.  
  42.  
  43. /* dialog box for command with <1xs> parameter */
  44. static MyBoolean    OneXS(NoteObjectRec* NoteCommand, char* Prompt, char* Box1Text)
  45.     {
  46.         double                    OneDouble;
  47.         MyBoolean                ChangedFlag;
  48.  
  49.         OneDouble = SmallExtBCD2Double(GetCommandNumericArg1(NoteCommand));
  50.         ChangedFlag = CommandDialogOneParam(Prompt,Box1Text,&OneDouble);
  51.         if (ChangedFlag)
  52.             {
  53.                 PutCommandNumericArg1(NoteCommand,Double2SmallExtBCD(OneDouble));
  54.             }
  55.         return ChangedFlag;
  56.     }
  57.  
  58.  
  59. /* dialog box for command with <1xs> and <2xs> parameters */
  60. static MyBoolean    TwoXS(NoteObjectRec* NoteCommand, char* Prompt, char* Box1Text,
  61.                                         char* Box2Text)
  62.     {
  63.         double                    OneDouble;
  64.         double                    TwoDouble;
  65.         MyBoolean                ChangedFlag;
  66.  
  67.         OneDouble = SmallExtBCD2Double(GetCommandNumericArg1(NoteCommand));
  68.         TwoDouble = SmallExtBCD2Double(GetCommandNumericArg2(NoteCommand));
  69.         ChangedFlag = CommandDialogTwoParams(Prompt,Box1Text,&OneDouble,Box2Text,&TwoDouble);
  70.         if (ChangedFlag)
  71.             {
  72.                 PutCommandNumericArg1(NoteCommand,Double2SmallExtBCD(OneDouble));
  73.                 PutCommandNumericArg2(NoteCommand,Double2SmallExtBCD(TwoDouble));
  74.             }
  75.         return ChangedFlag;
  76.     }
  77.  
  78.  
  79. /* dialog box for command with <1l> parameter */
  80. static MyBoolean    OneL(NoteObjectRec* NoteCommand, char* Prompt, char* Box1Text)
  81.     {
  82.         double                    OneDouble;
  83.         MyBoolean                ChangedFlag;
  84.  
  85.         OneDouble = LargeBCD2Double(GetCommandNumericArg1(NoteCommand));
  86.         ChangedFlag = CommandDialogOneParam(Prompt,Box1Text,&OneDouble);
  87.         if (ChangedFlag)
  88.             {
  89.                 PutCommandNumericArg1(NoteCommand,Double2LargeBCD(OneDouble));
  90.             }
  91.         return ChangedFlag;
  92.     }
  93.  
  94.  
  95. /* dialog box for 2 param command with first param <1l> and second <2xs> */
  96. static MyBoolean    OneLTwoXS(NoteObjectRec* NoteCommand, char* Prompt, char* Box1Text,
  97.                                         char* Box2Text)
  98.     {
  99.         double                    OneDouble;
  100.         double                    TwoDouble;
  101.         MyBoolean                ChangedFlag;
  102.  
  103.         OneDouble = LargeBCD2Double(GetCommandNumericArg1(NoteCommand));
  104.         TwoDouble = SmallExtBCD2Double(GetCommandNumericArg2(NoteCommand));
  105.         ChangedFlag = CommandDialogTwoParams(Prompt,Box1Text,&OneDouble,Box2Text,&TwoDouble);
  106.         if (ChangedFlag)
  107.             {
  108.                 PutCommandNumericArg1(NoteCommand,Double2LargeBCD(OneDouble));
  109.                 PutCommandNumericArg2(NoteCommand,Double2SmallExtBCD(TwoDouble));
  110.             }
  111.         return ChangedFlag;
  112.     }
  113.  
  114.  
  115. /* dialog box where the value being negative means one thing and the value */
  116. /* being zero or positive means another. */
  117. static MyBoolean    OneBool(NoteObjectRec* NoteCommand, char* Prompt, char* Negative,
  118.                                         char* ZeroOrPositive)
  119.     {
  120.         MyBoolean                Flag;
  121.         MyBoolean                ChangedFlag;
  122.  
  123.         if (GetCommandNumericArg1(NoteCommand) < 0)
  124.             {
  125.                 /* negative */
  126.                 Flag = True;
  127.             }
  128.          else
  129.             {
  130.                 /* zero or positive */
  131.                 Flag = False;
  132.             }
  133.         ChangedFlag = CommandDialogOneBinaryChoice(Prompt,Negative,ZeroOrPositive,&Flag);
  134.         if (ChangedFlag)
  135.             {
  136.                 if (Flag)
  137.                     {
  138.                         /* true = negative */
  139.                         PutCommandNumericArg1(NoteCommand,-1);
  140.                     }
  141.                  else
  142.                     {
  143.                         /* false = zero or positive */
  144.                         PutCommandNumericArg1(NoteCommand,0);
  145.                     }
  146.             }
  147.         return ChangedFlag;
  148.     }
  149.  
  150.  
  151. /* dialog box for command with <1i> and <2i> parameters */
  152. static MyBoolean    TwoI(NoteObjectRec* NoteCommand, char* Prompt, char* Box1Text,
  153.                                         char* Box2Text)
  154.     {
  155.         double                    OneDouble;
  156.         double                    TwoDouble;
  157.         MyBoolean                ChangedFlag;
  158.  
  159.         OneDouble = GetCommandNumericArg1(NoteCommand);
  160.         TwoDouble = GetCommandNumericArg2(NoteCommand);
  161.         ChangedFlag = CommandDialogTwoParams(Prompt,Box1Text,&OneDouble,Box2Text,&TwoDouble);
  162.         if (ChangedFlag)
  163.             {
  164.                 PutCommandNumericArg1(NoteCommand,(long)OneDouble);
  165.                 PutCommandNumericArg2(NoteCommand,(long)TwoDouble);
  166.             }
  167.         return ChangedFlag;
  168.     }
  169.  
  170.  
  171. /* dialog box for command with <1s> parameter */
  172. static MyBoolean    OneStr(NoteObjectRec* NoteCommand, char* Prompt, char* Box1Text)
  173.     {
  174.         char*                        StringParameter;
  175.         MyBoolean                ChangedFlag;
  176.  
  177.         StringParameter = GetCommandStringArg(NoteCommand);
  178.         if (StringParameter == NIL)
  179.             {
  180.                 StringParameter = AllocPtrCanFail(0,"OneStr");
  181.                 if (StringParameter == NIL)
  182.                     {
  183.                         return False;
  184.                     }
  185.             }
  186.          else
  187.             {
  188.                 StringParameter = CopyPtr(StringParameter);
  189.                 if (StringParameter == NIL)
  190.                     {
  191.                         return False;
  192.                     }
  193.             }
  194.         ChangedFlag = CommandDialogOneString(Prompt,Box1Text,&StringParameter);
  195.         if (ChangedFlag)
  196.             {
  197.                 PutCommandStringArg(NoteCommand,StringParameter);
  198.             }
  199.          else
  200.             {
  201.                 ReleasePtr(StringParameter);
  202.             }
  203.         return ChangedFlag;
  204.     }
  205.  
  206.  
  207. /* dialog box for command with <1l> parameter */
  208. static MyBoolean    OneI(NoteObjectRec* NoteCommand, char* Prompt, char* Box1Text)
  209.     {
  210.         double                    OneDouble;
  211.         MyBoolean                ChangedFlag;
  212.  
  213.         OneDouble = GetCommandNumericArg1(NoteCommand);
  214.         ChangedFlag = CommandDialogOneParam(Prompt,Box1Text,&OneDouble);
  215.         if (ChangedFlag)
  216.             {
  217.                 PutCommandNumericArg1(NoteCommand,OneDouble);
  218.             }
  219.         return ChangedFlag;
  220.     }
  221.  
  222.  
  223. /* present a dialog box appropriate to the object type which allows the */
  224. /* user to edit the object's attributes */
  225. void                            EditNoteOrCommandAttributes(struct NoteObjectRec* NoteCommand,
  226.                                         TrackObjectRec* Track)
  227.     {
  228.         CheckPtrExistence(NoteCommand);
  229.         if (!IsItACommand(NoteCommand))
  230.             {
  231.                 /* present note attribute editing box */
  232.                 EditNoteParametersDialog(NoteCommand,Track);
  233.             }
  234.          else
  235.             {
  236.                 MyBoolean                SomethingChanged EXECUTE(= -15431);
  237.  
  238.                 /* figure out which command edit box we should present */
  239.                 switch (GetCommandOpcode(NoteCommand))
  240.                     {
  241.                         /* restore the tempo to the default for the score */
  242.                         case eCmdRestoreTempo:
  243.                             SomethingChanged = False; /* there are no parameters to edit */
  244.                             break;
  245.  
  246.                         /* set tempo to <1xs> number of beats per second */
  247.                         case eCmdSetTempo:
  248.                             SomethingChanged = OneXS(NoteCommand,"Set Tempo:  Enter a new "
  249.                                 "tempo value.","Beats per Minute:");
  250.                             break;
  251.  
  252.                         /* add <1xs> to the tempo control */
  253.                         case eCmdIncTempo:
  254.                             SomethingChanged = OneXS(NoteCommand,"Increment Tempo:  Enter the "
  255.                                 "number of beats per minute to change the tempo by.","BPM Adjustment:");
  256.                             break;
  257.  
  258.                         /* <1xs> = target tempo, <2xs> = # of beats to reach it */
  259.                         case eCmdSweepTempoAbs:
  260.                             SomethingChanged = TwoXS(NoteCommand,"Sweep Tempo Absolute:  Enter new "
  261.                                 "tempo destination value and the number of beats to spread the "
  262.                                 "transition across.","Destination BPM:","Duration:");
  263.                             break;
  264.  
  265.                         /* <1xs> = target adjust (add to tempo), <2xs> = # beats */
  266.                         case eCmdSweepTempoRel:
  267.                             SomethingChanged = TwoXS(NoteCommand,"Sweep Tempo Relative:  Enter a "
  268.                                 "tempo adjustment value and the number of beats to spread the "
  269.                                 "transition across.","BPM Adjustment:","Duration:");
  270.                             break;
  271.  
  272.                         /* restore stereo position to channel's default */
  273.                         case eCmdRestoreStereoPosition:
  274.                             SomethingChanged = False; /* no attributes */
  275.                             break;
  276.  
  277.                         /* set position in channel <1l>: -1 = left, 1 = right */
  278.                         case eCmdSetStereoPosition:
  279.                             SomethingChanged = OneL(NoteCommand,"Set Stereo Position:  Enter a "
  280.                                 "stereo position value (-1 = hard left ... 1 = hard right).",
  281.                                 "Stereo Position:");
  282.                             break;
  283.  
  284.                         /* adjust stereo position by adding <1l> */
  285.                         case eCmdIncStereoPosition:
  286.                             SomethingChanged = OneL(NoteCommand,"Adjust Stereo Position:  Enter an "
  287.                                 "adjustment value for the stereo position (negative values move the "
  288.                                 "channel left; positive values move the channel right).",
  289.                                 "Stereo Position Adjustment:");
  290.                             break;
  291.  
  292.                         /* <1l> = new pos, <2xs> = # of beats to get there */
  293.                         case eCmdSweepStereoAbs:
  294.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Stereo Absolute:  Enter "
  295.                                 "a destination value for the stereo position and the number of beats "
  296.                                 "to spread the transition across.","Destination Stereo Position:",
  297.                                 "Duration:");
  298.                             break;
  299.  
  300.                         /* <1l> = pos adjust, <2xs> = # beats to get there */
  301.                         case eCmdSweepStereoRel:
  302.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Stereo Relative:  Enter "
  303.                                 "a stereo position adjustment value and the number of beats to "
  304.                                 "spread the transition across.","Stereo Position Adjustment:",
  305.                                 "Duration:");
  306.                             break;
  307.  
  308.                         /* restore surround position to channel's default */
  309.                         case eCmdRestoreSurroundPosition:
  310.                             SomethingChanged = False; /* no attributes */
  311.                             break;
  312.  
  313.                         /* set surround position in channel <1l>: 1 = front, -1 = rear */
  314.                         case eCmdSetSurroundPosition:
  315.                             SomethingChanged = OneL(NoteCommand,"Set Surround Position:  Enter a "
  316.                                 "surround position value (1 = front ... -1 = rear).",
  317.                                 "Surround Position:");
  318.                             break;
  319.  
  320.                         /* adjust surround position by adding <1l> */
  321.                         case eCmdIncSurroundPosition:
  322.                             SomethingChanged = OneL(NoteCommand,"Adjust Surround Position:  Enter an "
  323.                                 "adjustment value for the surround position (positive values move the "
  324.                                 "channel forward; negative values move the channel backward).",
  325.                                 "Surround Position Adjustment:");
  326.                             break;
  327.  
  328.                         /* <1l> = new pos, <2xs> = # of beats to get there */
  329.                         case eCmdSweepSurroundAbs:
  330.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Surround Absolute:  Enter "
  331.                                 "a destination value for the surround position and the number of beats "
  332.                                 "to spread the transition across.","Destination Surround Position:",
  333.                                 "Duration:");
  334.                             break;
  335.  
  336.                         /* <1l> = pos adjust, <2xs> = # beats to get there */
  337.                         case eCmdSweepSurroundRel:
  338.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Surround Relative:  Enter "
  339.                                 "a surround position adjustment value and the number of beats to "
  340.                                 "spread the transition across.","Surround Position Adjustment:",
  341.                                 "Duration:");
  342.                             break;
  343.  
  344.                         /* restore the volume to the default for the channel */
  345.                         case eCmdRestoreVolume:
  346.                             SomethingChanged = False; /* no attributes to edit */
  347.                             break;
  348.  
  349.                         /* set the volume to the specified level (0..1) in <1l> */
  350.                         case eCmdSetVolume:
  351.                             SomethingChanged = OneL(NoteCommand,"Set Volume:  Enter an overall "
  352.                                 "volume level value (0 = silent ... 1 = full volume).","Volume:");
  353.                             break;
  354.  
  355.                         /* add <1l> to the volume control */
  356.                         case eCmdIncVolume:
  357.                             SomethingChanged = OneL(NoteCommand,"Adjust Volume:  Enter a volume "
  358.                                 "adjustment value (values less than 1 make sound quieter, values "
  359.                                 "greater than 1 make sound louder).","Volume Adjustment:");
  360.                             break;
  361.  
  362.                         /* <1l> = new volume, <2xs> = # of beats to reach it */
  363.                         case eCmdSweepVolumeAbs:
  364.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Volume Absolute:  Enter "
  365.                                 "a new volume value and the number of beats to spread the transition "
  366.                                 "across.","Destination Volume:","Duration:");
  367.                             break;
  368.  
  369.                         /* <1l> = volume adjust, <2xs> = # of beats to reach it */
  370.                         case eCmdSweepVolumeRel:
  371.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Volume Relative:  Enter "
  372.                                 "a volume adjustment value and the number of beats to spread the "
  373.                                 "transition across.","Volume Adjustment:","Duration:");
  374.                             break;
  375.  
  376.                         /* restore release point to master default */
  377.                         case eCmdRestoreReleasePoint1:
  378.                             SomethingChanged = False; /* no attributes to edit */
  379.                             break;
  380.  
  381.                         /* set the default release point to new value <1l> */
  382.                         case eCmdSetReleasePoint1:
  383.                             SomethingChanged = OneL(NoteCommand,"Set Release Point 1:  Enter the "
  384.                                 "first release point location (0 = start of note; 1 = end of note; "
  385.                                 "values beyond range are allowed).","Release Point 1:");
  386.                             break;
  387.  
  388.                         /* add <1l> to default release point for adjustment */
  389.                         case eCmdIncReleasePoint1:
  390.                             SomethingChanged = OneL(NoteCommand,"Adjust Release Point 1:  Enter an "
  391.                                 "adjustment value for the first release point (negative values move "
  392.                                 "the release earlier; positive values move it later).",
  393.                                 "Release Point 1 Adjust:");
  394.                             break;
  395.  
  396.                         /* if <1i> is < 0, then from start, else from end of note */
  397.                         case eCmdReleasePointOrigin1:
  398.                             SomethingChanged = OneBool(NoteCommand,"Release Point 1 Origin:  Choose "
  399.                                 "where the first release point should be measured from.",
  400.                                 "From Start of Note","From End of Note");
  401.                             break;
  402.  
  403.                         /* <1l> = new release, <2xs> = # of beats to get there */
  404.                         case eCmdSweepReleaseAbs1:
  405.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Release Point 1 Absolute:"
  406.                                 "  Enter a destination time for the first release point and the "
  407.                                 "number of beats to spread the transition across.","Release Point 1:",
  408.                                 "Duration:");
  409.                             break;
  410.  
  411.                         /* <1l> = release adjust, <2xs> = # of beats to get there */
  412.                         case eCmdSweepReleaseRel1:
  413.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Release Point 1 Relative:"
  414.                                 "  Enter an adjustment value for the first release point and the "
  415.                                 "number of beats to spread the transition across.",
  416.                                 "Release Point 1 Adjust:","Duration:");
  417.                             break;
  418.  
  419.                         /* restore release point to master default */
  420.                         case eCmdRestoreReleasePoint2:
  421.                             SomethingChanged = False; /* no parameters to edit */
  422.                             break;
  423.  
  424.                         /* set the default release point to new value <1l> */
  425.                         case eCmdSetReleasePoint2:
  426.                             SomethingChanged = OneL(NoteCommand,"Set Release Point 2:  Enter the "
  427.                                 "second release point location (0 = start of note; 1 = end of note; "
  428.                                 "values beyond range are allowed).","Release Point 2:");
  429.                             break;
  430.  
  431.                         /* add <1l> to default release point for adjustment */
  432.                         case eCmdIncReleasePoint2:
  433.                             SomethingChanged = OneL(NoteCommand,"Adjust Release Point 2:  Enter an "
  434.                                 "adjustment value for the second release point (negative values move "
  435.                                 "the release earlier; positive values move it later).",
  436.                                 "Release Point 2 Adjust:");
  437.                             break;
  438.  
  439.                         /* if <1i> is < 0, then from start, else from end of note */
  440.                         case eCmdReleasePointOrigin2:
  441.                             SomethingChanged = OneBool(NoteCommand,"Release Point 2 Origin:  Choose "
  442.                                 "where the second release point should be measured from.",
  443.                                 "From Start of Note","From End of Note");
  444.                             break;
  445.  
  446.                         /* <1l> = new release, <2xs> = # of beats to get there */
  447.                         case eCmdSweepReleaseAbs2:
  448.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Release Point 2 Absolute:"
  449.                                 "  Enter a destination time for the second release point and the "
  450.                                 "number of beats to spread the transition across.","Release Point 2:",
  451.                                 "Duration:");
  452.                             break;
  453.  
  454.                         /* <1l> = release adjust, <2xs> = # of beats to get there */
  455.                         case eCmdSweepReleaseRel2:
  456.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Release Point 2 Relative:"
  457.                                 "  Enter an adjustment value for the second release point and the "
  458.                                 "number of beats to spread the transition across.",
  459.                                 "Release Point 2 Adjust:","Duration:");
  460.                             break;
  461.  
  462.                         /* restore accent value to master default */
  463.                         case eCmdRestoreAccent1:
  464.                             SomethingChanged = False; /* no parameters to edit */
  465.                             break;
  466.  
  467.                         /* specify the new default accent in <1l> */
  468.                         case eCmdSetAccent1:
  469.                             SomethingChanged = OneL(NoteCommand,"Set Accent 1:  Enter an accent "
  470.                                 "factor (0 = normal; less than 0 = diminish; greater than 0 = "
  471.                                 "strengthen).","Accent 1:");
  472.                             break;
  473.  
  474.                         /* add <1l> to the default accent */
  475.                         case eCmdIncAccent1:
  476.                             SomethingChanged = OneL(NoteCommand,"Adjust Accent 1:  Enter an "
  477.                                 "adjustment value for the first accent (negative values diminish the "
  478.                                 "accent; positive values strengthen it).","Accent 1 Adjustment:");
  479.                             break;
  480.  
  481.                         /* <1l> = new accent, <2xs> = # of beats to get there */
  482.                         case eCmdSweepAccentAbs1:
  483.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Accent 1 Absolute:  "
  484.                                 "Enter an accent value and the number of beats to spread the "
  485.                                 "transition across.","Destination Accent 1:","Duration:");
  486.                             break;
  487.  
  488.                         /* <1l> = accent adjust, <2xs> = # of beats to get there */
  489.                         case eCmdSweepAccentRel1:
  490.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Accent 1 Relative:  "
  491.                                 "Enter an accent adjust value and the number of beats to spread the "
  492.                                 "transition across.","Accent 1 Adjust:","Duration:");
  493.                             break;
  494.  
  495.                         /* restore accent value to master default */
  496.                         case eCmdRestoreAccent2:
  497.                             SomethingChanged = False; /* no parameters to edit */
  498.                             break;
  499.  
  500.                         /* specify the new default accent in <1l> */
  501.                         case eCmdSetAccent2:
  502.                             SomethingChanged = OneL(NoteCommand,"Set Accent 2:  Enter an accent "
  503.                                 "factor (0 = normal; less than 0 = diminish; greater than 0 = "
  504.                                 "strengthen).","Accent 2:");
  505.                             break;
  506.  
  507.                         /* add <1l> to the default accent */
  508.                         case eCmdIncAccent2:
  509.                             SomethingChanged = OneL(NoteCommand,"Adjust Accent 2:  Enter an "
  510.                                 "adjustment value for the second accent (negative values diminish the "
  511.                                 "accent; positive values strengthen it).","Accent 2 Adjustment:");
  512.                             break;
  513.  
  514.                         /* <1l> = new accent, <2xs> = # of beats to get there */
  515.                         case eCmdSweepAccentAbs2:
  516.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Accent 2 Absolute:  "
  517.                                 "Enter an accent value and the number of beats to spread the "
  518.                                 "transition across.","Destination Accent 2:","Duration:");
  519.                             break;
  520.  
  521.                         /* <1l> = accent adjust, <2xs> = # of beats to get there */
  522.                         case eCmdSweepAccentRel2:
  523.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Accent 2 Relative:  "
  524.                                 "Enter an accent adjust value and the number of beats to spread the "
  525.                                 "transition across.","Accent 2 Adjust:","Duration:");
  526.                             break;
  527.  
  528.                         /* restore accent value to master default */
  529.                         case eCmdRestoreAccent3:
  530.                             SomethingChanged = False; /* no parameters to edit */
  531.                             break;
  532.  
  533.                         /* specify the new default accent in <1l> */
  534.                         case eCmdSetAccent3:
  535.                             SomethingChanged = OneL(NoteCommand,"Set Accent 3:  Enter an accent "
  536.                                 "factor (0 = normal; less than 0 = diminish; greater than 0 = "
  537.                                 "strengthen).","Accent 3:");
  538.                             break;
  539.  
  540.                         /* add <1l> to the default accent */
  541.                         case eCmdIncAccent3:
  542.                             SomethingChanged = OneL(NoteCommand,"Adjust Accent 3:  Enter an "
  543.                                 "adjustment value for the second accent (negative values diminish the "
  544.                                 "accent; positive values strengthen it).","Accent 3 Adjustment:");
  545.                             break;
  546.  
  547.                         /* <1l> = new accent, <2xs> = # of beats to get there */
  548.                         case eCmdSweepAccentAbs3:
  549.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Accent 3 Absolute:  "
  550.                                 "Enter an accent value and the number of beats to spread the "
  551.                                 "transition across.","Destination Accent 3:","Duration:");
  552.                             break;
  553.  
  554.                         /* <1l> = accent adjust, <2xs> = # of beats to get there */
  555.                         case eCmdSweepAccentRel3:
  556.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Accent 3 Relative:  "
  557.                                 "Enter an accent adjust value and the number of beats to spread the "
  558.                                 "transition across.","Accent 3 Adjust:","Duration:");
  559.                             break;
  560.  
  561.                         /* restore accent value to master default */
  562.                         case eCmdRestoreAccent4:
  563.                             SomethingChanged = False; /* no parameters to edit */
  564.                             break;
  565.  
  566.                         /* specify the new default accent in <1l> */
  567.                         case eCmdSetAccent4:
  568.                             SomethingChanged = OneL(NoteCommand,"Set Accent 4:  Enter an accent "
  569.                                 "factor (0 = normal; less than 0 = diminish; greater than 0 = "
  570.                                 "strengthen).","Accent 4:");
  571.                             break;
  572.  
  573.                         /* add <1l> to the default accent */
  574.                         case eCmdIncAccent4:
  575.                             SomethingChanged = OneL(NoteCommand,"Adjust Accent 4:  Enter an "
  576.                                 "adjustment value for the fourth accent (negative values diminish the "
  577.                                 "accent; positive values strengthen it).","Accent 4 Adjustment:");
  578.                             break;
  579.  
  580.                         /* <1l> = new accent, <2xs> = # of beats to get there */
  581.                         case eCmdSweepAccentAbs4:
  582.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Accent 3 Absolute:  "
  583.                                 "Enter an accent value and the number of beats to spread the "
  584.                                 "transition across.","Destination Accent 3:","Duration:");
  585.                             break;
  586.  
  587.                         /* <1l> = accent adjust, <2xs> = # of beats to get there */
  588.                         case eCmdSweepAccentRel4:
  589.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Accent 3 Relative:  "
  590.                                 "Enter an accent adjust value and the number of beats to spread the "
  591.                                 "transition across.","Accent 3 Adjust:","Duration:");
  592.                             break;
  593.  
  594.                         /* restore max pitch disp depth value to default */
  595.                         case eCmdRestorePitchDispDepth:
  596.                             SomethingChanged = False; /* no parameters to edit */
  597.                             break;
  598.  
  599.                         /* set new max pitch disp depth <1l> */
  600.                         case eCmdSetPitchDispDepth:
  601.                             SomethingChanged = OneL(NoteCommand,"Set Pitch Displacement Depth:  "
  602.                                 "Enter a new maximum pitch displacement depth.","Pitch Disp. Depth:");
  603.                             break;
  604.  
  605.                         /* add <1l> to the default pitch disp depth */
  606.                         case eCmdIncPitchDispDepth:
  607.                             SomethingChanged = OneL(NoteCommand,"Adjust Pitch Displacement Depth:  "
  608.                                 "Enter an adjustment for the maximum pitch displacement depth.",
  609.                                 "Pitch Disp. Depth Adjust:");
  610.                             break;
  611.  
  612.                         /* <1l> = new depth, <2xs> = # of beats */
  613.                         case eCmdSweepPitchDispDepthAbs:
  614.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Pitch Displacement Depth "
  615.                                 "Absolute:  Enter the target pitch displacement depth and the number "
  616.                                 "of beats to spread the transition across.","Dest. Pitch Disp. Depth:",
  617.                                 "Duration:");
  618.                             break;
  619.  
  620.                         /* <1l> = depth adjust, <2xs> = # of beats */
  621.                         case eCmdSweepPitchDispDepthRel:
  622.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Pitch Displacement Depth "
  623.                                 "Relative:  Enter an adjustment pitch displacement depth value and "
  624.                                 "the number of beats to spread the transition across.",
  625.                                 "Pitch Disp. Depth Adjust:","Duration:");
  626.                             break;
  627.  
  628.                         /* restore max pitch disp rate to the master default */
  629.                         case eCmdRestorePitchDispRate:
  630.                             SomethingChanged = False; /* no parameters to edit */
  631.                             break;
  632.  
  633.                         /* set new max pitch disp rate in seconds to <1l> */
  634.                         case eCmdSetPitchDispRate:
  635.                             SomethingChanged = OneL(NoteCommand,"Set Pitch Displacement Rate:  Enter "
  636.                                 "the maximum number of oscillations per second.",
  637.                                 "Pitch Displacement Rate:");
  638.                             break;
  639.  
  640.                         /* add <1l> to the default max pitch disp rate */
  641.                         case eCmdIncPitchDispRate:
  642.                             SomethingChanged = OneL(NoteCommand,"Adjust Pitch Displacement Rate:  "
  643.                                 "Enter an adjustment pitch displacement rate value.",
  644.                                 "Pitch Disp. Rate Adjust:");
  645.                             break;
  646.  
  647.                         /* <1l> = new rate, <2xs> = # of beats to get there */
  648.                         case eCmdSweepPitchDispRateAbs:
  649.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Pitch Displacement Rate "
  650.                                 "Absolute:  Enter a destination pitch displacement rate and the "
  651.                                 "number of beats to spread the transition across.",
  652.                                 "Dest. Pitch Disp. Rate:","Duration:");
  653.                             break;
  654.  
  655.                         /* <1l> = rate adjust, <2xs> = # of beats to get there */
  656.                         case eCmdSweepPitchDispRateRel:
  657.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Pitch Displacement Rate "
  658.                                 "Relative:  Enter an adjustment pitch displacement rate value and "
  659.                                 "the number of beats to spread the transition across.",
  660.                                 "Pitch Disp. Rate Adjust:","Duration:");
  661.                             break;
  662.  
  663.                         /* restore pitch disp start point to default */
  664.                         case eCmdRestorePitchDispStart:
  665.                             SomethingChanged = False; /* no parameters to edit */
  666.                             break;
  667.  
  668.                         /* set the start point to <1l> */
  669.                         case eCmdSetPitchDispStart:
  670.                             SomethingChanged = OneL(NoteCommand,"Set Pitch Displacement Start:  "
  671.                                 "Enter a new start point for the pitch displacement envelope (0 = "
  672.                                 "note start; 1 = note end; values out of range are allowed).",
  673.                                 "Pitch Disp. Start:");
  674.                             break;
  675.  
  676.                         /* add <1l> to the pitch disp start point */
  677.                         case eCmdIncPitchDispStart:
  678.                             SomethingChanged = OneL(NoteCommand,"Adjust Pitch Displacement Start:  "
  679.                                 "Enter an adjustment for the pitch displacement start point.",
  680.                                 "Pitch Disp. Start Adjust:");
  681.                             break;
  682.  
  683.                         /* specify the origin, same as for release point <1i> */
  684.                         case eCmdPitchDispStartOrigin:
  685.                             SomethingChanged = OneBool(NoteCommand,"Pitch Displacement Origin:  "
  686.                                 "Choose where the pitch displacement start point should be measured "
  687.                                 "from.","From Start of Note","From End of Note");
  688.                             break;
  689.  
  690.                         /* <1l> = new vib start, <2xs> = # of beats */
  691.                         case eCmdSweepPitchDispStartAbs:
  692.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Pitch Displacement "
  693.                                 "Start Absolute:  Enter a pitch displacement start point and the "
  694.                                 "number of beats to spread the transition across.",
  695.                                 "Dest. Pitch Disp. Start:","Duration:");
  696.                             break;
  697.  
  698.                         /* <1l> = vib adjust, <2xs> = # of beats */
  699.                         case eCmdSweepPitchDispStartRel:
  700.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Pitch Displacement "
  701.                                 "Start Relative:  Enter an adjustment pitch displacement start point "
  702.                                 "value and the number of beats to spread the transition across.",
  703.                                 "Pitch Disp. Start Adjust:","Duration:");
  704.                             break;
  705.  
  706.                         /* restore default hurryup factor */
  707.                         case eCmdRestoreHurryUp:
  708.                             SomethingChanged = False; /* no parameters to edit */
  709.                             break;
  710.  
  711.                         /* set the hurryup factor to <1l> */
  712.                         case eCmdSetHurryUp:
  713.                             SomethingChanged = OneL(NoteCommand,"Set Hurry-Up Factor:  Enter a "
  714.                                 "hurry-up factor (1 = normal; less than 1 = envelopes execute faster; "
  715.                                 "greater than 1 = envelopes execute more slowly).","Hurry-Up Factor:");
  716.                             break;
  717.  
  718.                         /* add <1l> to the hurryup factor */
  719.                         case eCmdIncHurryUp:
  720.                             SomethingChanged = OneL(NoteCommand,"Adjust Hurry-Up Factor:  Enter an "
  721.                                 "adjustment hurry-up value (negative values make envelopes execute "
  722.                                 "faster; positive values make envelopes execute more slowly).",
  723.                                 "Hurry-Up Adjustment:");
  724.                             break;
  725.  
  726.                         /* <1l> = new hurryup factor, <2xs> = # of beats */
  727.                         case eCmdSweepHurryUpAbs:
  728.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Hurry-Up Factor Absolute:"
  729.                                 "  Enter a hurry-up factor and the number of beats to spread the "
  730.                                 "transition across.","Destination Hurry-Up:","Duration:");
  731.                             break;
  732.  
  733.                         /* <1l> = hurryup adjust, <2xs> = # of beats to get there */
  734.                         case eCmdSweepHurryUpRel:
  735.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Hurry-Up Factor Relative:"
  736.                                 "  Enter an adjustment hurry-up value and the number of beats to "
  737.                                 "spread the transition across.","Hurry-Up Adjustment:","Duration:");
  738.                             break;
  739.  
  740.                         /* restore the default detune factor */
  741.                         case eCmdRestoreDetune:
  742.                             SomethingChanged = False; /* no parameters to edit */
  743.                             break;
  744.  
  745.                         /* set the detune factor to <1l> */
  746.                         case eCmdSetDetune:
  747.                             SomethingChanged = OneL(NoteCommand,"Set Detuning:  Enter a detuning "
  748.                                 "value (negative values decrease pitch; positive values increase "
  749.                                 "pitch).","Detuning:");
  750.                             break;
  751.  
  752.                         /* add <1l> to current detune factor */
  753.                         case eCmdIncDetune:
  754.                             SomethingChanged = OneL(NoteCommand,"Adjust Detuning:  Enter an "
  755.                                 "adjustment detuning value (negative values decrease pitch; positive "
  756.                                 "values increase pitch).","Detuning Adjustment:");
  757.                             break;
  758.  
  759.                         /* <1i>:  <0: Hertz, >=0: half-steps */
  760.                         case eCmdDetuneMode:
  761.                             SomethingChanged = OneBool(NoteCommand,"Detuning Mode:  Choose whether "
  762.                                 "the detuning value is in Hertz or halfsteps.","Hertz","Halfsteps");
  763.                             break;
  764.  
  765.                         /* <1l> = new detune, <2xs> = # of beats */
  766.                         case eCmdSweepDetuneAbs:
  767.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Detuning Absolute:  "
  768.                                 "Enter a destination detuning value and the number of beats to spread "
  769.                                 "the transition across.","Destination Detuning:","Duration:");
  770.                             break;
  771.  
  772.                         /* <1l> = detune adjust, <2xs> = # of beats */
  773.                         case eCmdSweepDetuneRel:
  774.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Detuning Relative:  "
  775.                                 "Enter an adjustment detuning value and the number of beats to spread "
  776.                                 "the transition across.","Detuning Adjustment:","Duration:");
  777.                             break;
  778.  
  779.                         /* restore the default early/late adjust value */
  780.                         case eCmdRestoreEarlyLateAdjust:
  781.                             SomethingChanged = False; /* no parameters to edit */
  782.                             break;
  783.  
  784.                         /* set the early/late adjust value to <1l> */
  785.                         case eCmdSetEarlyLateAdjust:
  786.                             SomethingChanged = OneL(NoteCommand,"Set Early/Late Hit Adjust:  Enter "
  787.                                 "an early/late hit time adjustment (negative values make note hit "
  788.                                 "earlier; positive values make note hit later).","Early/Late Adjust:");
  789.                             break;
  790.  
  791.                         /* add <1l> to the current early/late adjust value */
  792.                         case eCmdIncEarlyLateAdjust:
  793.                             SomethingChanged = OneL(NoteCommand,"Adjust Early/Late Hit Adjust:  Enter "
  794.                                 "an adjustment early/late hit time value (negative values make note "
  795.                                 "hit earlier; positive values make note hit later).",
  796.                                 "Early/Late Adjust:");
  797.                             break;
  798.  
  799.                         /* <1l> = new early/late adjust, <2xs> = # of beats */
  800.                         case eCmdSweepEarlyLateAbs:
  801.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Early/Late Hit Adjust "
  802.                                 "Absolute:  Enter a destination early/late hit time adjustment and "
  803.                                 "the number of beats to spread the transition across.",
  804.                                 "Destination Early/Late Adjust:","Duration:");
  805.                             break;
  806.  
  807.                         /* <1l> = early/late delta, <2xs> = # of beats to get there */
  808.                         case eCmdSweepEarlyLateRel:
  809.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Early/Late Hit Adjust "
  810.                                 "Relative:  Enter an adjustment early/late hit time value and the "
  811.                                 "number of beats to spread the transition across","Early/Late Adjust:",
  812.                                 "Duration:");
  813.                             break;
  814.  
  815.                         /* restore the default duration adjust value */
  816.                         case eCmdRestoreDurationAdjust:
  817.                             SomethingChanged = False; /* no parameters to edit */
  818.                             break;
  819.  
  820.                         /* set duration adjust value to <1l> */
  821.                         case eCmdSetDurationAdjust:
  822.                             SomethingChanged = OneL(NoteCommand,"Set Duration Adjust:  Enter a "
  823.                                 "duration adjust factor.","Duration Adjust:");
  824.                             break;
  825.  
  826.                         /* add <1l> to the current duration adjust value */
  827.                         case eCmdIncDurationAdjust:
  828.                             SomethingChanged = OneL(NoteCommand,"Adjust Duration Adjust:  Enter an "
  829.                                 "adjustment duration adjust factor (negative values make note shorter; "
  830.                                 "positive values make note longer).","Duratin Adjust:");
  831.                             break;
  832.  
  833.                         /* <1l> = new duration adjust, <2xs> = # of beats */
  834.                         case eCmdSweepDurationAbs:
  835.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Duration Adjust Absolute:"
  836.                                 "  Enter a destination duration adjust factor and the number of beats "
  837.                                 "to spread the transition across.","Dest. Duration Adjust:",
  838.                                 "Duration:");
  839.                             break;
  840.  
  841.                         /* <1l> = duration adjust delta, <2xs> = # of beats */
  842.                         case eCmdSweepDurationRel:
  843.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Duration Adjust Relative:"
  844.                                 "  Enter an adjustment duration adjust value and the number of beats "
  845.                                 "to spread the transition across.","Duration Adjust:","Duration:");
  846.                             break;
  847.  
  848.                         /* <1i>:  <0: Multiplicative, >=0: Additive */
  849.                         case eCmdDurationAdjustMode:
  850.                             SomethingChanged = OneBool(NoteCommand,"Set Duration Adjust Mode:  "
  851.                                 "Choose whether the duration adjust scales the note's duration "
  852.                                 "by multiplication or addition.","Multiply note's duration by value",
  853.                                 "Add note's duration and value");
  854.                             break;
  855.  
  856.                         /* <1i> = numerator, <2i> = denominator */
  857.                         case eCmdSetMeter:
  858.                             SomethingChanged = TwoI(NoteCommand,"Set Meter:  Enter the time "
  859.                                 "signature for measure bar placement.","Beats per Measure:",
  860.                                 "Beat Reference Note:");
  861.                             break;
  862.  
  863.                         /* <1i> = new number */
  864.                         case eCmdSetMeasureNumber:
  865.                             SomethingChanged = OneI(NoteCommand,"Set Measure Number:  Enter the "
  866.                                 "number for the next measure bar.","Next Measure Number:");
  867.                             break;
  868.  
  869.                         /* <1i> = new transpose value */
  870.                         case eCmdSetTranspose:
  871.                             SomethingChanged = OneI(NoteCommand,"Set Transpose:  enter the number "
  872.                                 "of half-steps to transpose by.","Half-steps:");
  873.                             break;
  874.  
  875.                         /* <1i> = adjusting transpose value */
  876.                         case eCmdAdjustTranspose:
  877.                             SomethingChanged = OneI(NoteCommand,"Adjust Transpose:  enter the "
  878.                                 "number of half-steps to adjust the current transpose "
  879.                                 "value by.","Half-steps:");
  880.                             break;
  881.  
  882.                         /* specify the new default effect parameter in <1l> */
  883.                         case eCmdSetEffectParam1:
  884.                             SomethingChanged = OneL(NoteCommand,"Set Effect Accent 1:  Enter an accent "
  885.                                 "factor.","Effect Accent 1:");
  886.                             break;
  887.  
  888.                         /* add <1l> to the default effect parameter */
  889.                         case eCmdIncEffectParam1:
  890.                             SomethingChanged = OneL(NoteCommand,"Adjust Effect Accent 1:  Enter an "
  891.                                 "adjustment value for the second accent.","Effect Accent 1 Adjustment:");
  892.                             break;
  893.  
  894.                         /* <1l> = new effect parameter, <2xs> = # of beats to get there */
  895.                         case eCmdSweepEffectParamAbs1:
  896.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Effect Accent 1 Absolute:  "
  897.                                 "Enter an accent value and the number of beats to spread the "
  898.                                 "transition across.","Destination Effect Accent 1:","Duration:");
  899.                             break;
  900.  
  901.                         /* <1l> = effect parameter adjust, <2xs> = # of beats to get there */
  902.                         case eCmdSweepEffectParamRel1:
  903.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Effect Accent 1 Relative:  "
  904.                                 "Enter an accent adjust value and the number of beats to spread the "
  905.                                 "transition across.","Effect Accent 1 Adjust:","Duration:");
  906.                             break;
  907.  
  908.                         /* specify the new default effect parameter in <1l> */
  909.                         case eCmdSetEffectParam2:
  910.                             SomethingChanged = OneL(NoteCommand,"Set Effect Accent 2:  Enter an accent "
  911.                                 "factor.","Effect Accent 2:");
  912.                             break;
  913.  
  914.                         /* add <1l> to the default effect parameter */
  915.                         case eCmdIncEffectParam2:
  916.                             SomethingChanged = OneL(NoteCommand,"Adjust Effect Accent 2:  Enter an "
  917.                                 "adjustment value for the second accent.","Effect Accent 2 Adjustment:");
  918.                             break;
  919.  
  920.                         /* <1l> = new effect parameter, <2xs> = # of beats to get there */
  921.                         case eCmdSweepEffectParamAbs2:
  922.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Effect Accent 2 Absolute:  "
  923.                                 "Enter an accent value and the number of beats to spread the "
  924.                                 "transition across.","Destination Effect Accent 2:","Duration:");
  925.                             break;
  926.  
  927.                         /* <1l> = effect parameter adjust, <2xs> = # of beats to get there */
  928.                         case eCmdSweepEffectParamRel2:
  929.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Effect Accent 2 Relative:  "
  930.                                 "Enter an accent adjust value and the number of beats to spread the "
  931.                                 "transition across.","Effect Accent 2 Adjust:","Duration:");
  932.                             break;
  933.  
  934.                         /* specify the new default effect parameter in <1l> */
  935.                         case eCmdSetEffectParam3:
  936.                             SomethingChanged = OneL(NoteCommand,"Set Effect Accent 3:  Enter an accent "
  937.                                 "factor.","Effect Accent 3:");
  938.                             break;
  939.  
  940.                         /* add <1l> to the default effect parameter */
  941.                         case eCmdIncEffectParam3:
  942.                             SomethingChanged = OneL(NoteCommand,"Adjust Effect Accent 3:  Enter an "
  943.                                 "adjustment value for the second accent.","Effect Accent 3 Adjustment:");
  944.                             break;
  945.  
  946.                         /* <1l> = new effect parameter, <2xs> = # of beats to get there */
  947.                         case eCmdSweepEffectParamAbs3:
  948.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Effect Accent 3 Absolute:  "
  949.                                 "Enter an accent value and the number of beats to spread the "
  950.                                 "transition across.","Destination Effect Accent 3:","Duration:");
  951.                             break;
  952.  
  953.                         /* <1l> = effect parameter adjust, <2xs> = # of beats to get there */
  954.                         case eCmdSweepEffectParamRel3:
  955.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Effect Accent 3 Relative:  "
  956.                                 "Enter an accent adjust value and the number of beats to spread the "
  957.                                 "transition across.","Effect Accent 3 Adjust:","Duration:");
  958.                             break;
  959.  
  960.                         /* specify the new default effect parameter in <1l> */
  961.                         case eCmdSetEffectParam4:
  962.                             SomethingChanged = OneL(NoteCommand,"Set Effect Accent 4:  Enter an accent "
  963.                                 "factor.","Effect Accent 4:");
  964.                             break;
  965.  
  966.                         /* add <1l> to the default effect parameter */
  967.                         case eCmdIncEffectParam4:
  968.                             SomethingChanged = OneL(NoteCommand,"Adjust Effect Accent 4:  Enter an "
  969.                                 "adjustment value for the second accent.","Effect Accent 4 Adjustment:");
  970.                             break;
  971.  
  972.                         /* <1l> = new effect parameter, <2xs> = # of beats to get there */
  973.                         case eCmdSweepEffectParamAbs4:
  974.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Effect Accent 4 Absolute:  "
  975.                                 "Enter an accent value and the number of beats to spread the "
  976.                                 "transition across.","Destination Effect Accent 4:","Duration:");
  977.                             break;
  978.  
  979.                         /* <1l> = effect parameter adjust, <2xs> = # of beats to get there */
  980.                         case eCmdSweepEffectParamRel4:
  981.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Effect Accent 4 Relative:  "
  982.                                 "Enter an accent adjust value and the number of beats to spread the "
  983.                                 "transition across.","Effect Accent 4 Adjust:","Duration:");
  984.                             break;
  985.  
  986.                         /* <1i>: -1 = enable, 0 = disable */
  987.                         case eCmdTrackEffectEnable:
  988.                             SomethingChanged = OneBool(NoteCommand,"Track Effect Switch:  "
  989.                                 "Choose whether track effects are enabled or disabled.","Enable",
  990.                                 "Disable");
  991.                             break;
  992.  
  993.                         /* specify the new default score effect parameter in <1l> */
  994.                         case eCmdSetScoreEffectParam1:
  995.                             SomethingChanged = OneL(NoteCommand,"Set Global Score Effect Accent 1:  Enter an accent "
  996.                                 "factor.","Score Effect Accent 1:");
  997.                             break;
  998.  
  999.                         /* add <1l> to the default score effect parameter */
  1000.                         case eCmdIncScoreEffectParam1:
  1001.                             SomethingChanged = OneL(NoteCommand,"Adjust Global Score Effect Accent 1:  Enter an "
  1002.                                 "adjustment value for the second accent.","Score Effect Accent 1 Adjustment:");
  1003.                             break;
  1004.  
  1005.                         /* <1l> = new score effect parameter, <2xs> = # of beats to get there */
  1006.                         case eCmdSweepScoreEffectParamAbs1:
  1007.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Global Score Effect Accent 1 Absolute:  "
  1008.                                 "Enter an accent value and the number of beats to spread the "
  1009.                                 "transition across.","Destination Score Effect Accent 1:","Duration:");
  1010.                             break;
  1011.  
  1012.                         /* <1l> = score effect parameter adjust, <2xs> = # of beats to get there */
  1013.                         case eCmdSweepScoreEffectParamRel1:
  1014.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Global Score Effect Accent 1 Relative:  "
  1015.                                 "Enter an accent adjust value and the number of beats to spread the "
  1016.                                 "transition across.","Score Effect Accent 1 Adjust:","Duration:");
  1017.                             break;
  1018.  
  1019.                         /* specify the new default score effect parameter in <1l> */
  1020.                         case eCmdSetScoreEffectParam2:
  1021.                             SomethingChanged = OneL(NoteCommand,"Set Global Score Effect Accent 2:  Enter an accent "
  1022.                                 "factor.","Score Effect Accent 2:");
  1023.                             break;
  1024.  
  1025.                         /* add <1l> to the default score effect parameter */
  1026.                         case eCmdIncScoreEffectParam2:
  1027.                             SomethingChanged = OneL(NoteCommand,"Adjust Global Score Effect Accent 2:  Enter an "
  1028.                                 "adjustment value for the second accent.","Score Effect Accent 2 Adjustment:");
  1029.                             break;
  1030.  
  1031.                         /* <1l> = new score effect parameter, <2xs> = # of beats to get there */
  1032.                         case eCmdSweepScoreEffectParamAbs2:
  1033.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Global Score Effect Accent 2 Absolute:  "
  1034.                                 "Enter an accent value and the number of beats to spread the "
  1035.                                 "transition across.","Destination Score Effect Accent 2:","Duration:");
  1036.                             break;
  1037.  
  1038.                         /* <1l> = score effect parameter adjust, <2xs> = # of beats to get there */
  1039.                         case eCmdSweepScoreEffectParamRel2:
  1040.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Global Score Effect Accent 2 Relative:  "
  1041.                                 "Enter an accent adjust value and the number of beats to spread the "
  1042.                                 "transition across.","Score Effect Accent 2 Adjust:","Duration:");
  1043.                             break;
  1044.  
  1045.                         /* specify the new default score effect parameter in <1l> */
  1046.                         case eCmdSetScoreEffectParam3:
  1047.                             SomethingChanged = OneL(NoteCommand,"Set Global Score Effect Accent 3:  Enter an accent "
  1048.                                 "factor.","Score Effect Accent 3:");
  1049.                             break;
  1050.  
  1051.                         /* add <1l> to the default score effect parameter */
  1052.                         case eCmdIncScoreEffectParam3:
  1053.                             SomethingChanged = OneL(NoteCommand,"Adjust Global Score Effect Accent 3:  Enter an "
  1054.                                 "adjustment value for the second accent.","Score Effect Accent 3 Adjustment:");
  1055.                             break;
  1056.  
  1057.                         /* <1l> = new score effect parameter, <2xs> = # of beats to get there */
  1058.                         case eCmdSweepScoreEffectParamAbs3:
  1059.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Global Score Effect Accent 3 Absolute:  "
  1060.                                 "Enter an accent value and the number of beats to spread the "
  1061.                                 "transition across.","Destination Score Effect Accent 3:","Duration:");
  1062.                             break;
  1063.  
  1064.                         /* <1l> = score effect parameter adjust, <2xs> = # of beats to get there */
  1065.                         case eCmdSweepScoreEffectParamRel3:
  1066.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Global Score Effect Accent 3 Relative:  "
  1067.                                 "Enter an accent adjust value and the number of beats to spread the "
  1068.                                 "transition across.","Score Effect Accent 3 Adjust:","Duration:");
  1069.                             break;
  1070.  
  1071.                         /* specify the new default score effect parameter in <1l> */
  1072.                         case eCmdSetScoreEffectParam4:
  1073.                             SomethingChanged = OneL(NoteCommand,"Set Global Score Effect Accent 4:  Enter an accent "
  1074.                                 "factor.","Score Effect Accent 4:");
  1075.                             break;
  1076.  
  1077.                         /* add <1l> to the default score effect parameter */
  1078.                         case eCmdIncScoreEffectParam4:
  1079.                             SomethingChanged = OneL(NoteCommand,"Adjust Global Score Effect Accent 4:  Enter an "
  1080.                                 "adjustment value for the second accent.","Score Effect Accent 4 Adjustment:");
  1081.                             break;
  1082.  
  1083.                         /* <1l> = new score effect parameter, <2xs> = # of beats to get there */
  1084.                         case eCmdSweepScoreEffectParamAbs4:
  1085.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Global Score Effect Accent 4 Absolute:  "
  1086.                                 "Enter an accent value and the number of beats to spread the "
  1087.                                 "transition across.","Destination Score Effect Accent 4:","Duration:");
  1088.                             break;
  1089.  
  1090.                         /* <1l> = score effect parameter adjust, <2xs> = # of beats to get there */
  1091.                         case eCmdSweepScoreEffectParamRel4:
  1092.                             SomethingChanged = OneLTwoXS(NoteCommand,"Sweep Global Score Effect Accent 4 Relative:  "
  1093.                                 "Enter an accent adjust value and the number of beats to spread the "
  1094.                                 "transition across.","Score Effect Accent 4 Adjust:","Duration:");
  1095.                             break;
  1096.  
  1097.                         /* <string> holds the text */
  1098.                         case eCmdMarker:
  1099.                             SomethingChanged = OneStr(NoteCommand,"Comment:  Enter a new comment.",
  1100.                                 "Comment:");
  1101.                             break;
  1102.  
  1103.                         default:
  1104.                             EXECUTE(PRERR(AllowResume,"EditNoteOrCommandAttributes:  unknown command"));
  1105.                             break;
  1106.                     }
  1107.                 ERROR((SomethingChanged != False) && (SomethingChanged != True),PRERR(
  1108.                     AllowResume,"EditNoteOrCommandAttributes:  SomethingChanged is neither "
  1109.                     "true nor false."));
  1110.  
  1111.                 if (SomethingChanged)
  1112.                     {
  1113.                         TrackObjectAltered(Track,0);
  1114.                     }
  1115.             }
  1116.     }
  1117.